<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../vue/vue.js"></script>
</head>

<body>
    <!--
        深度监视:
        (1).Vue中的watch默认不监测对象内部值的改变(一层)。
        (2).配置deep :true可以监测对象内部值改变(多层)。
        备注:
        (1) .Vue自身可以监测对象内部值的改变，但Vue 提供的watch默认不可以!
        (2).使用watch时根据数据的具体结构，决定是否采用深度监视。
   -->
    <!--准备好一个容器-->
    <div id="root">
        <h3>a的值是:{{numbers.a}}</h3>
        <button @click="numbers.a++">点我让a+1</button>
        <h3>b的值是:{{numbers.b}}</h3>
        <button @click='numbers.b++'>点我i让b+1</button>
        <button @click="numbers = {a: 666, b: 888}">彻底替换掉numbers</button>
    </div>
</body>
<script>

    Vue.config.productionTip = false;
    const vm = new Vue({
        el: '#root',
        data: {
            numbers: {
                a: 1,
                b: 2
            }
        },
        watch: {
            // numbuers可直接出现在vm中，他的属性需要使用，'numburs.a'
            'numbers': {
                deep: true,//注意deep的位置。
                handler() {
                    console.log('zhong');
                }
            },
            'numbers.a': {
                handler() {
                    console.log('guoren');                    
                }
            }

        }
    })

</script>

</html>